Skill Development

উইন্ডোজ ফর্ম এবং GUI প্রোগ্রামিং

উইন্ডোজ ফর্ম হল সি# এ GUI (Graphical User Interface) অ্যাপ্লিকেশন তৈরি করার জন্য ব্যবহৃত একটি ফ্রেমওয়ার্ক, যা .NET ফ্রেমওয়ার্কের অংশ। এটি ড্র্যাগ-এন্ড-ড্রপ ফিচারের মাধ্যমে বিভিন্ন UI উপাদান যেমন বোতাম, টেক্সটবক্স, লেবেল ইত্যাদি সহজেই যুক্ত করতে সাহায্য করে। GUI প্রোগ্রামিংয়ে, এই উইন্ডোজ ফর্ম ব্যবহার করে ইন্টারঅ্যাকটিভ অ্যাপ্লিকেশন তৈরি করা যায় যা ব্যবহারকারীর ইন্টারঅ্যাকশন গ্রহণ করে এবং তার ভিত্তিতে ফলাফল প্রদর্শন করে।


উইন্ডোজ ফর্ম অ্যাপ্লিকেশন শুরু করা

Visual Studio ব্যবহার করে উইন্ডোজ ফর্ম অ্যাপ্লিকেশন তৈরি করা খুবই সহজ। নিচে ধাপে ধাপে একটি উইন্ডোজ ফর্ম অ্যাপ্লিকেশন তৈরি করার পদ্ধতি বর্ণনা করা হলো:

নতুন প্রজেক্ট তৈরি করুন:

  • Visual Studio তে যান এবং Create a new project ক্লিক করুন।
  • "Windows Forms App (.NET Framework)" নির্বাচন করুন এবং প্রজেক্টের নাম দিন।

Form Designer ব্যবহার করুন:

  • উইন্ডোজ ফর্ম প্রজেক্টটি তৈরি হলে আপনি Form1.cs নামে একটি ফাইল দেখতে পাবেন, যা আপনার মেইন উইন্ডো। এখানে UI উপাদান ড্র্যাগ করে যোগ করা যাবে।

Toolbox থেকে কন্ট্রোল যোগ করুন:

  • Visual Studio এর ডানদিকে টুলবক্স রয়েছে, যেখানে বিভিন্ন UI কন্ট্রোল যেমন Button, Label, TextBox, ComboBox ইত্যাদি পাওয়া যায়। টুলবক্স থেকে কন্ট্রোলগুলোকে ফর্মে ড্র্যাগ করে যোগ করা যায়।

ইভেন্ট হ্যান্ডলার যুক্ত করা:

  • প্রতিটি UI উপাদানের জন্য ইভেন্ট হ্যান্ডলার যুক্ত করা যায়, যা ব্যবহারকারীর ইন্টারঅ্যাকশনের জন্য নির্দিষ্ট অ্যাকশন সম্পাদন করে। উদাহরণস্বরূপ, Button এর Click ইভেন্টে নির্দিষ্ট কোড যুক্ত করা যায়।

একটি সাধারণ উদাহরণ: বাটন ক্লিক ইভেন্ট

নিচে একটি সহজ উইন্ডোজ ফর্ম অ্যাপ্লিকেশনের উদাহরণ দেওয়া হলো, যেখানে একটি টেক্সটবক্স এবং একটি বাটন রয়েছে। ব্যবহারকারী টেক্সটবক্সে কিছু লিখবে এবং বাটনে ক্লিক করলে সেই টেক্সট মেসেজবক্সে প্রদর্শিত হবে।

Form Design:

  • একটি TextBox এবং একটি Button যোগ করুন।
  • Button এর Text প্রোপার্টি পরিবর্তন করে "Show Message" দিন।

কোড লেখা:

  • বাটনে ডাবল-ক্লিক করলে Button এর Click ইভেন্ট তৈরি হবে। সেখানে নিচের কোড লিখুন:
using System;
using System.Windows.Forms;

namespace WindowsFormsApp
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void button1_Click(object sender, EventArgs e)
        {
            // টেক্সটবক্স থেকে ইনপুট পড়া
            string message = textBox1.Text;

            // মেসেজবক্সে প্রদর্শন
            MessageBox.Show("You entered: " + message);
        }
    }
}

ব্যাখ্যা

  • textBox1.Text: textBox1 এর Text প্রোপার্টির মাধ্যমে ইনপুট নেওয়া হয়েছে।
  • MessageBox.Show: MessageBox ব্যবহার করে মেসেজ প্রদর্শন করা হয়েছে।

উইন্ডোজ ফর্ম কন্ট্রোল

উইন্ডোজ ফর্মে বিভিন্ন ধরনের কন্ট্রোল আছে, যা ব্যবহারকারীর সাথে ইন্টারঅ্যাকশন তৈরি করতে ব্যবহৃত হয়। নিচে কয়েকটি গুরুত্বপূর্ণ কন্ট্রোল এবং তাদের ব্যবহার দেওয়া হলো:

Label: টেক্সট প্রদর্শনের জন্য ব্যবহৃত হয়।

label1.Text = "Enter your name:";

TextBox: ব্যবহারকারীর ইনপুট গ্রহণের জন্য ব্যবহৃত হয়।

string name = textBox1.Text;

Button: ব্যবহারকারী ইন্টারঅ্যাকশনের জন্য বোতাম।

  • Click ইভেন্টের মাধ্যমে বাটন ক্লিক হ্যান্ডল করা যায়।

CheckBox: নির্বাচনের জন্য ব্যবহৃত হয়।

bool isChecked = checkBox1.Checked;

ComboBox: ড্রপডাউন তালিকা প্রদর্শনের জন্য ব্যবহৃত হয়।

comboBox1.Items.Add("Option 1");

ListBox: একাধিক আইটেম প্রদর্শন এবং নির্বাচন করতে ব্যবহৃত হয়।

listBox1.Items.Add("Item 1");

ফর্ম নেভিগেশন (Form Navigation)

একটি অ্যাপ্লিকেশন প্রায়শই একাধিক ফর্মের সমন্বয়ে তৈরি হয়। একটি ফর্ম থেকে অন্য ফর্মে যাওয়ার জন্য নতুন ফর্মের অবজেক্ট তৈরি করে Show() মেথড ব্যবহার করা হয়।

Form2 form2 = new Form2();
form2.Show();

GUI প্রোগ্রামিং এ ইভেন্ট হ্যান্ডলিং

GUI প্রোগ্রামিংয়ে ইভেন্ট হ্যান্ডলিং একটি গুরুত্বপূর্ণ ভূমিকা পালন করে, কারণ এটি ব্যবহারকারীর ইন্টারঅ্যাকশনের জন্য নির্দিষ্ট অ্যাকশন সম্পাদন করে। উদাহরণস্বরূপ, Button এর Click ইভেন্টে ক্লিক করার সময় কী ঘটবে তা নির্ধারণ করা যায়।

ইভেন্ট হ্যান্ডলিং উদাহরণ

private void button1_Click(object sender, EventArgs e)
{
    MessageBox.Show("Button clicked!");
}

এখানে, যখন ব্যবহারকারী button1 এ ক্লিক করবে, তখন একটি মেসেজবক্স প্রদর্শিত হবে।


MessageBox

MessageBox হলো উইন্ডোজ ফর্মে একটি পপ-আপ ডায়ালগ বক্স যা মেসেজ প্রদর্শনের জন্য ব্যবহৃত হয়।

MessageBox.Show("This is a message.");

MessageBoxButtons এবং MessageBoxIcon দিয়ে মেসেজবক্সে বোতাম এবং আইকন যুক্ত করা যায়।

MessageBox.Show("Do you want to continue?", "Confirmation", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

GUI এর পটভূমি মাল্টিথ্রেডিং (BackgroundWorker)

উইন্ডোজ ফর্মে মাল্টিথ্রেডিং ব্যবহার করে পটভূমিতে কাজ করা যায়, যেমন বড় কাজের জন্য BackgroundWorker ক্লাস ব্যবহার করা হয়। এটি ব্যবহারকারীর অভিজ্ঞতা উন্নত করতে সহায়ক।

উদাহরণ: BackgroundWorker ব্যবহার

using System.ComponentModel;

private BackgroundWorker backgroundWorker;

public Form1()
{
    InitializeComponent();
    backgroundWorker = new BackgroundWorker();
    backgroundWorker.DoWork += BackgroundWorker_DoWork;
}

private void BackgroundWorker_DoWork(object sender, DoWorkEventArgs e)
{
    // পটভূমিতে কাজ করা
    for (int i = 0; i < 5; i++)
    {
        Console.WriteLine("Working...");
        Thread.Sleep(1000); // এক সেকেন্ড অপেক্ষা
    }
}

সংক্ষেপে উইন্ডোজ ফর্ম এবং GUI প্রোগ্রামিং

  • UI তৈরি: বিভিন্ন কন্ট্রোল (Label, TextBox, Button, ইত্যাদি) ব্যবহার করে ইন্টারফেস তৈরি করা।
  • ইভেন্ট হ্যান্ডলিং: ব্যবহারকারীর ইন্টারঅ্যাকশন ম্যানেজ করা।
  • ফর্ম নেভিগেশন: একাধিক ফর্মের মধ্যে নেভিগেশন।
  • MessageBox: বিভিন্ন মেসেজ প্রদর্শন করা।
  • BackgroundWorker: পটভূমিতে কাজ সম্পন্ন করা।

উইন্ডোজ ফর্ম এবং GUI প্রোগ্রামিংয়ের মাধ্যমে ইন্টারঅ্যাকটিভ, সহজ, এবং আকর্ষণীয় অ্যাপ্লিকেশন তৈরি করা যায়, যা ব্যবহারকারীর সাথে সরাসরি যোগাযোগ এবং সাড়া প্রদান করতে সক্ষম।

Content added By

উইন্ডোজ ফর্ম অ্যাপ্লিকেশন তৈরি করা

উইন্ডোজ ফর্ম অ্যাপ্লিকেশন সি# ব্যবহার করে GUI (Graphical User Interface) ভিত্তিক ডেস্কটপ অ্যাপ্লিকেশন তৈরি করার একটি সহজ এবং জনপ্রিয় পদ্ধতি। এটি সাধারণত ব্যবসায়িক সফটওয়্যার, ডেটাবেজ অ্যাপ্লিকেশন এবং অন্যান্য ডেক্সটপ অ্যাপ তৈরি করতে ব্যবহৃত হয়।

উইন্ডোজ ফর্ম অ্যাপ্লিকেশন শুরু করার জন্য প্রয়োজনীয় উপকরণ

১. Visual Studio: উইন্ডোজ ফর্ম অ্যাপ্লিকেশন তৈরির জন্য Visual Studio একটি জনপ্রিয় IDE। এখানে ড্র্যাগ-এন্ড-ড্রপ ইন্টারফেস ব্যবহার করে সহজেই ফর্ম তৈরি করা যায়। ২. .NET Framework: উইন্ডোজ ফর্ম অ্যাপ্লিকেশন .NET Framework এ ভিত্তিক, যা Visual Studio এর মধ্যে সাপোর্টেড।


ধাপ ১: নতুন উইন্ডোজ ফর্ম প্রজেক্ট তৈরি করা

১. Visual Studio ওপেন করুন। ২. File > New > Project এ যান। ৩. Windows Forms App (.NET Framework) নির্বাচন করুন এবং Next ক্লিক করুন। ৪. প্রজেক্টের জন্য নাম লিখুন এবং সংরক্ষণ ফোল্ডার নির্বাচন করুন। ৫. Create ক্লিক করুন।

এতে একটি নতুন উইন্ডোজ ফর্ম প্রজেক্ট তৈরি হবে এবং ডিফল্ট ফর্ম Form1 প্রদর্শিত হবে।


ধাপ ২: ফর্ম ডিজাইন করা

Visual Studio এর ড্র্যাগ-এন্ড-ড্রপ ইন্টারফেসের মাধ্যমে ফর্ম ডিজাইন করা খুবই সহজ। Form1 এর উপর বিভিন্ন UI উপাদান (যেমন, বাটন, লেবেল, টেক্সটবক্স) যুক্ত করতে পারেন।

১. Toolbox থেকে উপাদান (Controls) ড্র্যাগ করে ফর্মে রাখুন। ২. প্রতিটি উপাদানের Properties উইন্ডোতে গিয়ে বৈশিষ্ট্য পরিবর্তন করতে পারেন (যেমন, নাম, টেক্সট, ফন্ট)। ৩. প্রতিটি উপাদানে ডাবল ক্লিক করলে তার ইভেন্ট হ্যান্ডলার তৈরি হবে যেখানে কোড লিখতে পারবেন।


উদাহরণ: একটি সহজ ক্যালকুলেটর তৈরি করা

ধরা যাক, আমরা একটি বেসিক ক্যালকুলেটর তৈরি করতে চাই, যেখানে দুটি সংখ্যা যোগফল প্রদর্শন করা হবে।

ধাপ ১: ফর্মে কন্ট্রোল যুক্ত করা

১. ফর্মে দুইটি TextBox যোগ করুন এবং নাম দিন textBox1 এবং textBox2। ২. একটি Button যোগ করুন এবং এর Text প্রপার্টি Add দিন, এবং নাম দিন buttonAdd। ৩. একটি Label যোগ করুন এবং নাম দিন labelResult

ধাপ ২: বাটন ক্লিক ইভেন্টে কোড লেখা

buttonAdd এ ডাবল ক্লিক করুন এবং নিচের কোডটি লিখুন:

private void buttonAdd_Click(object sender, EventArgs e)
{
    try
    {
        // TextBox থেকে সংখ্যা নিয়ে যোগফল বের করা
        int number1 = int.Parse(textBox1.Text);
        int number2 = int.Parse(textBox2.Text);
        int result = number1 + number2;

        // ফলাফল লেবেলে প্রদর্শন করা
        labelResult.Text = "Result: " + result.ToString();
    }
    catch (Exception ex)
    {
        MessageBox.Show("Please enter valid numbers. " + ex.Message);
    }
}

কোডের ব্যাখ্যা

  • textBox1.Text এবং textBox2.Text থেকে সংখ্যা নেয়া হয়েছে এবং int.Parse দিয়ে সংখ্যা হিসেবে কনভার্ট করা হয়েছে।
  • দুইটি সংখ্যা যোগ করে result নামক ভেরিয়েবলে সংরক্ষণ করা হয়েছে।
  • labelResult.Text এ যোগফল প্রদর্শন করা হয়েছে।
  • try-catch ব্লক ব্যবহার করে ইনপুটে ভুল থাকলে ব্যবহারকারীকে সতর্ক বার্তা দেওয়া হয়েছে।

ধাপ ৩: অ্যাপ্লিকেশন রান করা

১. Start বা F5 প্রেস করে অ্যাপ্লিকেশন রান করুন। ২. TextBox এ দুইটি সংখ্যা লিখুন এবং Add বাটন প্রেস করুন। ৩. labelResult এ যোগফল প্রদর্শিত হবে।


উদাহরণ: একটি সাইন ইন ফর্ম তৈরি করা

এই উদাহরণে একটি সাইন ইন ফর্ম তৈরি করা হবে যেখানে ইউজারনেম ও পাসওয়ার্ড ইনপুট নিয়ে সাইন ইন করার একটি উদাহরণ দেওয়া হলো।

ধাপ ১: কন্ট্রোল যোগ করা

১. Label (UserName) এবং একটি TextBox যোগ করুন, নাম দিন textBoxUsername। ২. Label (Password) এবং একটি TextBox যোগ করুন, নাম দিন textBoxPassword এবং PasswordChar প্রপার্টি * সেট করুন যাতে পাসওয়ার্ড হাইড হয়। ৩. একটি Button যোগ করুন, নাম দিন buttonSignIn এবং Text প্রপার্টি Sign In সেট করুন। ৪. একটি Label যোগ করুন, নাম দিন labelMessage

ধাপ ২: বাটন ক্লিক ইভেন্টে কোড লেখা

buttonSignIn এ ডাবল ক্লিক করে নিচের কোডটি লিখুন:

private void buttonSignIn_Click(object sender, EventArgs e)
{
    string username = textBoxUsername.Text;
    string password = textBoxPassword.Text;

    // সাইন ইন ভেরিফিকেশন
    if (username == "admin" && password == "1234")
    {
        labelMessage.Text = "Login successful!";
    }
    else
    {
        labelMessage.Text = "Invalid username or password.";
    }
}

ব্যাখ্যা

  • textBoxUsername এবং textBoxPassword থেকে ইনপুট নেয়া হয়েছে।
  • ইনপুট চেক করা হয়েছে: যদি ইউজারনেম admin এবং পাসওয়ার্ড 1234 হয়, তবে labelMessage এ লগইন সফল বার্তা দেখাবে।
  • অন্যথায়, labelMessage এ ভুল বার্তা দেখানো হবে।

উইন্ডোজ ফর্ম অ্যাপ্লিকেশনের সুবিধা

  • সহজ GUI তৈরি: Visual Studio এর ড্র্যাগ-এন্ড-ড্রপ ফিচার ব্যবহার করে খুব সহজে ফর্ম ডিজাইন করা যায়।
  • ইভেন্ট ড্রাইভেন প্রোগ্রামিং: ইভেন্ট ভিত্তিক অ্যাপ্লিকেশন তৈরি করতে সহজ, যেখানে ব্যবহারকারীর ইন্টারঅ্যাকশন অনুযায়ী ইভেন্ট হ্যান্ডলার তৈরি করা যায়।
  • সহজ ডেটাবেস ইন্টিগ্রেশন: উইন্ডোজ ফর্ম ব্যবহার করে সহজে ডেটাবেস সংযোগ করা যায় এবং ডেটাবেস ভিত্তিক অ্যাপ্লিকেশন তৈরি করা যায়।
  • কমপ্লেক্স লজিক ইমপ্লিমেন্ট করা সহজ: সহজেই ক্যালকুলেশন, লজিক এবং UI লজিক ইমপ্লিমেন্ট করা যায়।

এভাবে উইন্ডোজ ফর্ম অ্যাপ্লিকেশন তৈরি করা যায় এবং GUI ভিত্তিক প্রোগ্রাম তৈরি করে ব্যবহারকারীর জন্য ইন্টারঅ্যাকটিভ অ্যাপ্লিকেশন তৈরি করা সম্ভব।

Content added By

বিভিন্ন উইজেট যেমন বাটন, লেবেল, টেক্সট বক্স

সি# এ উইন্ডোজ ফর্ম অ্যাপ্লিকেশন এর বিভিন্ন ধরনের উইজেট বা কন্ট্রোল রয়েছে, যা GUI অ্যাপ্লিকেশন তৈরি করার সময় ব্যবহার করা হয়। প্রতিটি উইজেটের নিজস্ব ব্যবহার এবং কার্যক্ষমতা আছে। নিচে বিভিন্ন উইজেটের সাথে উদাহরণসহ ব্যাখ্যা করা হলো।


১. Button (বাটন)

Button হলো এমন একটি কন্ট্রোল, যা ব্যবহারকারী ইন্টারফেসে ক্লিক করার জন্য ব্যবহৃত হয়। সাধারণত, ব্যবহারকারী যখন বোতামে ক্লিক করে, তখন একটি নির্দিষ্ট অ্যাকশন সম্পন্ন হয়।

উদাহরণ: Button ক্লিক ইভেন্ট

private void button1_Click(object sender, EventArgs e)
{
    MessageBox.Show("Button clicked!");
}
  • Text: বাটনে প্রদর্শিত টেক্সট সেট করতে Text প্রোপার্টি ব্যবহার করা হয়।
  • Click ইভেন্ট: বাটনে ক্লিক করার সময় কী হবে তা Click ইভেন্টে নির্ধারণ করা যায়।

২. Label (লেবেল)

Label হলো এমন একটি কন্ট্রোল, যা ব্যবহারকারীর জন্য ইনফরমেশন বা নির্দেশনা প্রদর্শনের জন্য ব্যবহৃত হয়। এটি শুধুমাত্র টেক্সট প্রদর্শন করে এবং এর সাথে কোনো ইন্টারঅ্যাকশন থাকে না।

উদাহরণ: Label এ টেক্সট সেট করা

label1.Text = "Enter your name:";
  • Text: লেবেলে প্রদর্শিত টেক্সট সেট করতে Text প্রোপার্টি ব্যবহার করা হয়।
  • Font, ForeColor, BackColor: লেবেলের ফন্ট স্টাইল, টেক্সট রঙ এবং ব্যাকগ্রাউন্ড রঙ পরিবর্তন করা যায়।

৩. TextBox (টেক্সটবক্স)

TextBox হলো এমন একটি কন্ট্রোল, যা ব্যবহারকারীর ইনপুট গ্রহণ করার জন্য ব্যবহৃত হয়। এটি সাধারণত ব্যবহারকারীকে কোনো টেক্সট টাইপ করার অনুমতি দেয়।

উদাহরণ: TextBox থেকে ইনপুট পড়া এবং সেট করা

string userInput = textBox1.Text; // TextBox থেকে ইনপুট পড়া
textBox1.Text = "Default Text";   // TextBox এ টেক্সট সেট করা
  • Text: টেক্সটবক্সের ভেতরের টেক্সট পড়তে বা সেট করতে ব্যবহার করা হয়।
  • Multiline: একাধিক লাইনে টেক্সট লেখার জন্য Multiline প্রোপার্টি true করতে হয়।
  • PasswordChar: পাসওয়ার্ডের জন্য ব্যবহার করতে টেক্সট গোপন রাখার জন্য PasswordChar সেট করা যায়।

৪. CheckBox (চেকবক্স)

CheckBox হলো এমন একটি কন্ট্রোল, যা ব্যবহারকারীকে নির্দিষ্ট কোনো অপশন নির্বাচন বা বাতিল করার অনুমতি দেয়। এটি বুলিয়ান (Boolean) মান প্রদান করে।

উদাহরণ: CheckBox এর স্ট্যাটাস পড়া

bool isChecked = checkBox1.Checked; // চেক করা হয়েছে কিনা সেটি পড়া
  • Checked: চেকবক্স চেক করা হয়েছে কিনা তা যাচাই করতে ব্যবহৃত।
  • CheckState: Checked, Unchecked, এবং Indeterminate মান প্রদান করতে পারে।

৫. RadioButton (রেডিও বাটন)

RadioButton ব্যবহার করে ব্যবহারকারীকে একাধিক অপশনের মধ্যে একটি অপশন বাছাই করতে দেয়। সাধারণত, একাধিক রেডিও বাটন একত্রে গ্রুপ করা হয়, যাতে ব্যবহারকারী কেবল একটি অপশন নির্বাচন করতে পারে।

উদাহরণ: RadioButton চেক করা

if (radioButton1.Checked)
{
    MessageBox.Show("Option 1 selected");
}
  • Checked: রেডিও বাটনটি চেক করা হয়েছে কিনা যাচাই করতে ব্যবহার করা হয়।

৬. ComboBox (কম্বোবক্স)

ComboBox হলো একটি ড্রপডাউন তালিকা, যা ব্যবহারকারীকে একটি নির্দিষ্ট তালিকা থেকে একটি আইটেম নির্বাচন করার অনুমতি দেয়।

উদাহরণ: ComboBox এ আইটেম যোগ করা এবং পড়া

comboBox1.Items.Add("Option 1"); // আইটেম যোগ করা
string selectedOption = comboBox1.SelectedItem.ToString(); // নির্বাচিত আইটেম পড়া
  • Items: Items.Add() মেথড ব্যবহার করে নতুন আইটেম যোগ করা যায়।
  • SelectedItem: ComboBox এর নির্বাচিত আইটেম পড়তে ব্যবহৃত।

৭. ListBox (লিস্টবক্স)

ListBox হলো এমন একটি কন্ট্রোল, যা একাধিক আইটেম প্রদর্শন করে এবং ব্যবহারকারী এক বা একাধিক আইটেম নির্বাচন করতে পারে।

উদাহরণ: ListBox এ আইটেম যোগ করা এবং নির্বাচিত আইটেম পড়া

listBox1.Items.Add("Item 1"); // আইটেম যোগ করা
string selectedItem = listBox1.SelectedItem.ToString(); // নির্বাচিত আইটেম পড়া
  • Items: ListBox এ আইটেম যোগ করার জন্য Items.Add() ব্যবহার করা হয়।
  • SelectedItem: নির্বাচিত আইটেম পড়তে ব্যবহার করা হয়।

৮. PictureBox (পিকচারবক্স)

PictureBox ব্যবহার করে কোনো ছবি বা গ্রাফিক্স প্রদর্শন করা যায়।

উদাহরণ: PictureBox এ ছবি লোড করা

pictureBox1.ImageLocation = "path_to_image.jpg";
  • ImageLocation: ছবি ফাইলের পথ সেট করে ছবি লোড করা যায়।
  • SizeMode: PictureBoxSizeMode ব্যবহার করে ছবির আকার পরিবর্তন করা যায়, যেমন StretchImage, AutoSize

৯. ProgressBar (প্রগ্রেসবার)

ProgressBar কন্ট্রোলটি কোনো নির্দিষ্ট কাজের অগ্রগতি প্রদর্শন করতে ব্যবহৃত হয়, যেমন ডাউনলোড, ফাইল কপি ইত্যাদি।

উদাহরণ: ProgressBar সেট করা

progressBar1.Minimum = 0;
progressBar1.Maximum = 100;
progressBar1.Value = 50; // ৫০% অগ্রগতি প্রদর্শন করছে
  • Minimum এবং Maximum: প্রগ্রেসবারের সর্বনিম্ন এবং সর্বোচ্চ মান নির্ধারণ করতে ব্যবহৃত।
  • Value: প্রগ্রেসবারের বর্তমান মান সেট বা পড়তে ব্যবহার করা হয়।

১০. Timer (টাইমার)

Timer কন্ট্রোল নির্দিষ্ট সময় পরপর নির্দিষ্ট ইভেন্ট চালায়। এটি স্বয়ংক্রিয়ভাবে পুনরাবৃত্তি করতে পারে এবং বিশেষ করে মাল্টিটাস্কিং বা নির্দিষ্ট ইভেন্ট নির্দিষ্ট সময় পরপর চালানোর জন্য ব্যবহৃত হয়।

উদাহরণ: Timer সেট করা

csharp

Copy code

private Timer timer1;

public Form1()
{
    InitializeComponent();
    timer1 = new Timer();
    timer1.Interval = 1000; // ১ সেকেন্ড ইন্টারভাল
    timer1.Tick += Timer1_Tick;
    timer1.Start();
}

private void Timer1_Tick(object sender, EventArgs e)
{
    Console.WriteLine("Timer ticked!");
}
  • Interval: কত সময় পরপর Tick ইভেন্ট ট্রিগার হবে তা নির্ধারণ করা হয়।
  • Tick ইভেন্ট: নির্দিষ্ট সময় পরপর Tick ইভেন্টের মাধ্যমে কার্য সম্পন্ন করা হয়।

সংক্ষেপে উইন্ডোজ ফর্ম কন্ট্রোল

কন্ট্রোলব্যবহার
Buttonক্লিক ইভেন্টের মাধ্যমে কার্য সম্পন্ন করা
Labelটেক্সট প্রদর্শনের জন্য
TextBoxব্যবহারকারীর ইনপুট নেওয়ার জন্য
CheckBoxঅপশন নির্বাচন বা বাতিল করতে
RadioButtonএকাধিক অপশনের মধ্যে একটি নির্বাচন
ComboBoxড্রপডাউন তালিকা থেকে একটি আইটেম নির্বাচন
ListBoxএকাধিক আইটেম প্রদর্শন ও নির্বাচন করতে
PictureBoxছবি প্রদর্শন করতে
ProgressBarকাজের অগ্রগতি প্রদর্শন করতে
Timerনির্দিষ্ট সময় পরপর ইভেন্ট চালাতে

উইন্ডোজ ফর্ম অ্যাপ্লিকেশন তৈরি করার সময় এই কন্ট্রোলগুলো ব্যবহার করে বিভিন্ন কার্যকরী ও ইন্টারেক্টিভ GUI তৈরি করা যায়। প্রতিটি কন্ট্রোলের নির্দিষ্ট ইভেন্ট ব্যবহার করে কাস্টমাইজড ফাংশনালিটি যোগ করা যায়, যা ব্যবহারকারীর অভিজ্ঞতা বাড়ায়।

Content added By

ইভেন্ট হ্যান্ডলিং

সি# এ ইভেন্ট হ্যান্ডলিং একটি গুরুত্বপূর্ণ কনসেপ্ট, যা ইন্টারঅ্যাকটিভ প্রোগ্রাম তৈরি করতে ব্যবহৃত হয়। ইভেন্ট হ্যান্ডলিং এমন একটি প্রক্রিয়া, যেখানে নির্দিষ্ট কোনো ঘটনার (Event) প্রতিক্রিয়া জানাতে কোড লেখা হয়। উদাহরণস্বরূপ, একটি বাটন ক্লিক হলে, একটি টেক্সটবক্সে লেখা হলে, বা একটি মাউস মুভ হলে ইভেন্ট হ্যান্ডলিং করা হয়।

ইভেন্ট হ্যান্ডলিং কিভাবে কাজ করে?

সি# এ ইভেন্ট হ্যান্ডলিং এর প্রধান উপাদানগুলো হলো:

  1. Event Publisher: যে অবজেক্টে ইভেন্ট তৈরি হয়। উদাহরণস্বরূপ, একটি Button ক্লাস যেখানে Click ইভেন্ট রয়েছে।
  2. Event Subscriber: যে অবজেক্ট ইভেন্টটি গ্রহণ করে এবং তার প্রতিক্রিয়া জানায়।

ইভেন্ট সাবস্ক্রাইব করতে ডেলিগেট ব্যবহার করা হয় এবং এক্ষেত্রে EventHandler ডেলিগেটটি সবচেয়ে বেশি ব্যবহৃত হয়।


ইভেন্ট হ্যান্ডলিং উদাহরণ: একটি বাটন ক্লিক ইভেন্ট

নিচে একটি বাটন ক্লিক ইভেন্ট হ্যান্ডলিং এর উদাহরণ দেওয়া হলো।

ধাপ ১: উইন্ডোজ ফর্মে একটি Button এবং Label যোগ করা

১. Visual Studio তে একটি Windows Forms App প্রজেক্ট তৈরি করুন। ২. ফর্মে একটি Button এবং একটি Label যোগ করুন। ৩. Button এর Text প্রপার্টি "Click Me!" দিন এবং Label এর Text প্রপার্টি ফাঁকা রাখুন।

ধাপ ২: ইভেন্ট হ্যান্ডলার তৈরি করা

Button এ ডাবল ক্লিক করলে একটি ইভেন্ট হ্যান্ডলার তৈরি হবে, যা বাটন ক্লিক করার সময় ট্রিগার হবে।

private void button1_Click(object sender, EventArgs e)
{
    label1.Text = "Button was clicked!";
}

ব্যাখ্যা

  • button1_Click হলো ইভেন্ট হ্যান্ডলার, যা তখনই ট্রিগার হবে যখন button1 ক্লিক করা হবে।
  • label1.Text = "Button was clicked!"; এর মাধ্যমে লেবেল এ "Button was clicked!" মেসেজ প্রদর্শন করা হয়েছে।

ইভেন্ট হ্যান্ডলিং এর কাঠামো

ইভেন্ট হ্যান্ডলিংয়ের জন্য সাধারণ কাঠামো হলো:

private void <Event_Handler_Name>(object sender, EventArgs e)
{
    // ইভেন্ট হ্যান্ডল করার কোড
}
  • sender: যে অবজেক্ট থেকে ইভেন্টটি এসেছে (যেমন: Button)।
  • EventArgs e: ইভেন্ট সম্পর্কিত অতিরিক্ত তথ্য (যদি থাকে)।

কাস্টম ইভেন্ট তৈরি করা

সি# এ নিজস্ব ইভেন্ট বা কাস্টম ইভেন্টও তৈরি করা যায়, যেখানে আপনি নিজের নির্দিষ্ট ইভেন্ট ডেফাইন করতে পারেন।

using System;

public class Publisher
{
    // ডেলিগেট ডিক্লেয়ার করা
    public delegate void MyEventHandler(object sender, EventArgs e);

    // ইভেন্ট ডিক্লেয়ার করা
    public event MyEventHandler MyEvent;

    public void RaiseEvent()
    {
        if (MyEvent != null)
        {
            MyEvent(this, EventArgs.Empty);
        }
    }
}

public class Subscriber
{
    public void OnEventOccurred(object sender, EventArgs e)
    {
        Console.WriteLine("Event occurred!");
    }
}

public class Program
{
    public static void Main()
    {
        Publisher pub = new Publisher();
        Subscriber sub = new Subscriber();

        // ইভেন্ট সাবস্ক্রাইব করা
        pub.MyEvent += sub.OnEventOccurred;

        // ইভেন্ট রেইজ করা
        pub.RaiseEvent();
    }
}

ব্যাখ্যা

  1. Publisher ক্লাসে একটি কাস্টম ডেলিগেট এবং ইভেন্ট ডিক্লেয়ার করা হয়েছে।
  2. RaiseEvent মেথডে ইভেন্ট ট্রিগার করা হয়।
  3. Subscriber ক্লাসে ইভেন্ট হ্যান্ডলার তৈরি করা হয়েছে।
  4. pub.MyEvent += sub.OnEventOccurred; এর মাধ্যমে ইভেন্ট সাবস্ক্রাইব করা হয়েছে, অর্থাৎ OnEventOccurred মেথডটি ইভেন্ট হ্যান্ডলার হিসেবে কাজ করবে।
  5. pub.RaiseEvent(); দ্বারা ইভেন্ট রেইজ করা হয়েছে এবং আউটপুটে "Event occurred!" প্রদর্শিত হবে।

ইভেন্টের ধরন

সি# এ কিছু সাধারণ ইভেন্ট রয়েছে, যা প্রায়শই ব্যবহার করা হয়:

  • Click: বাটন ক্লিক করার সময় ঘটে।
  • TextChanged: টেক্সট পরিবর্তন হলে ট্রিগার হয়।
  • MouseEnter / MouseLeave: মাউস কোনো কন্ট্রোলে প্রবেশ করলে বা ছেড়ে গেলে ঘটে।
  • KeyPress: কোনো কী চাপলে ইভেন্ট ঘটে।

একটি পূর্ণাঙ্গ উদাহরণ

এই উদাহরণে আমরা একটি TextBox এবং একটি Label ব্যবহার করব। যখন TextBox এ কিছু লেখা হবে, তখনই Label এ সেই লেখা প্রদর্শিত হবে।

ধাপ ১: TextBox এবং Label যোগ করা

১. উইন্ডোজ ফর্মে একটি TextBox এবং একটি Label যোগ করুন। ২. Label এর Text প্রপার্টি ফাঁকা রাখুন।

ধাপ ২: TextBox এর TextChanged ইভেন্টে কোড লেখা

TextBox এ ডাবল ক্লিক করলে এর TextChanged ইভেন্ট তৈরি হবে এবং সেখানে নিচের কোডটি লিখুন:

private void textBox1_TextChanged(object sender, EventArgs e)
{
    label1.Text = textBox1.Text;
}

ব্যাখ্যা

  • textBox1_TextChanged ইভেন্ট হ্যান্ডলারটি TextBox এর প্রতিটি পরিবর্তনের সাথে সাথে ট্রিগার হবে।
  • label1.Text = textBox1.Text; এর মাধ্যমে TextBox এর লেখাকে Label এ দেখানো হবে।

সংক্ষেপে ইভেন্ট হ্যান্ডলিং

  • ইভেন্ট হ্যান্ডলিং: ইভেন্টের ঘটনার প্রতিক্রিয়া জানাতে কোড লেখার প্রক্রিয়া।
  • ইভেন্ট হ্যান্ডলার: ইভেন্ট ঘটলে যে মেথড কল হয়।
  • Event Publisher: ইভেন্ট তৈরি করে এমন অবজেক্ট, যেমন Button, TextBox ইত্যাদি।
  • Event Subscriber: ইভেন্টের ঘটনার প্রতিক্রিয়া জানায়, অর্থাৎ ইভেন্ট হ্যান্ডলার।

সি# এ ইভেন্ট হ্যান্ডলিং এর মাধ্যমে ইন্টারঅ্যাকটিভ প্রোগ্রাম তৈরি করা সহজ হয়, যেখানে ব্যবহারকারীর অ্যাকশনের উপর ভিত্তি করে ইভেন্ট হ্যান্ডলার কাজ করে।

Content added By

আরও দেখুন...

Promotion